package com.crm.api.service;

import com.crm.api.entity.BusinessType;

import java.util.List;
import java.util.Map;

/**
 * 业务类型服务接口
 */
public interface BusinessTypeService {

    /**
     * 获取业务类型列表（支持分页和筛选）
     */
    Map<String, Object> getBusinessTypes(Integer page, Integer size, String typeName, Boolean isActive);

    /**
     * 获取所有启用的业务类型
     */
    List<BusinessType> getActiveBusinessTypes();

    /**
     * 根据ID获取业务类型详情
     */
    BusinessType getBusinessTypeById(Integer id);

    /**
     * 创建业务类型
     */
    BusinessType createBusinessType(BusinessType businessType);

    /**
     * 更新业务类型
     */
    BusinessType updateBusinessType(BusinessType businessType);

    /**
     * 删除业务类型
     */
    boolean deleteBusinessType(Integer id);

    /**
     * 更新业务类型状态
     */
    boolean updateBusinessTypeStatus(Integer id, Boolean isActive);

    /**
     * 检查类型名称是否已存在
     */
    boolean existsByTypeName(String typeName);

    /**
     * 检查类型名称是否已被其他记录使用
     */
    boolean existsByTypeNameAndNotId(String typeName, Integer id);

    /**
     * 检查是否有关联的业务
     */
    boolean hasRelatedBusinesses(Integer id);
}